home *** CD-ROM | disk | FTP | other *** search
/ Reverse Code Engineering RCE CD +sandman 2000 / ReverseCodeEngineeringRceCdsandman2000.iso / RCE / Ebooks / Thinking in C++ V2 / C24 / ConstructorOrder.cpp < prev    next >
Encoding:
C/C++ Source or Header  |  2000-05-25  |  695 b   |  32 lines

  1. //: C24:ConstructorOrder.cpp
  2. // From Thinking in C++, 2nd Edition
  3. // Available at http://www.BruceEckel.com
  4. // (c) Bruce Eckel 1999
  5. // Copyright notice in Copyright.txt
  6. // Order of constructor calls
  7. #include <iostream>
  8. #include <typeinfo>
  9. using namespace std;
  10.  
  11. template<int id> class Announce {
  12. public:
  13.   Announce() {
  14.     cout << typeid(*this).name()
  15.          << " constructor " << endl;
  16.   }
  17.   ~Announce() {
  18.     cout << typeid(*this).name()
  19.          << " destructor " << endl;
  20.   }
  21. };
  22.  
  23. class X : public Announce<0> {
  24.   Announce<1> m1;
  25.   Announce<2> m2;
  26. public:
  27.   X() { cout << "X::X()" << endl; }
  28.   ~X() { cout << "X::~X()" << endl; }
  29. };
  30.  
  31. int main() { X x; } ///:~
  32.